#include "cabecera.h"



struct Ficha_alumno* generaVector(int alumnos){
	return (struct Ficha_alumno*) malloc(sizeof(struct Ficha_alumno)*alumnos);
}

void rellenaVector(struct Ficha_alumno* vector, int alumnos){
	int i;
	for(i=0; i<alumnos; i++){
		printf("ALUMNO [%d]\n",i);
		printf("_____________\n");
		printf("Introduzca el nombre del alumno: ");
		fgets((*(vector+i)).nombre, 50, stdin);
		(*(vector+i)).nombre[strlen((*(vector+i)).nombre)-1] = '\0';
		printf("Introduzca el DNI: ");
		scanf("%d", &(*(vector+i)).DNI);
		getchar();
		printf("Introduzca la nota del alumno: ");
		scanf("%f", &(*(vector+i)).nota);
		getchar();
	}
}

void muestraVector(struct Ficha_alumno* vector, int alumnos){
	int i;
	for(i=0; i<alumnos; i++){
		printf("ALUMNO [%d]\n", i);
		printf("____________\n");
		printf("Nombre: %s\n", (*(vector+i)).nombre);
		printf("DNI: %d\n", (*(vector+i)).DNI);
		printf("Nota: %f\n", (*(vector+i)).nota);
		printf("____________\n\n");
	}
}

int ordenaNombre(const void* e1, const void* e2){
	struct Ficha_alumno *alumno1, *alumno2;
	alumno1 = (struct Ficha_alumno*) e1;
	alumno2 = (struct Ficha_alumno*) e2;
	if(strcmp((*alumno1).nombre, (*alumno2).nombre) < 0){
		return -1;
	}
	else if(strcmp((*alumno1).nombre, (*alumno2).nombre) > 0)
	{
		return 1;
	}
	else{
		return 0;
	}
}

int ordenaNota(const void* e1, const void* e2){
	struct Ficha_alumno *alumno1, *alumno2;
	alumno1 = (struct Ficha_alumno*) e1;
	alumno2 = (struct Ficha_alumno*) e2;
	if((*alumno1).nota < (*alumno2).nota){
		return -1;
	}
	else if((*alumno1).nota > (*alumno2).nota){
		return 1;
	}
	else{
		return 0;
	}
}